#ifndef NODO_H
#define NODO_H

#include <iostream>
#include <vector>
#include <math.h>
#include "Vertice.h"


using namespace::std;

class Nodo {
private:

    int p;// posicion mas alejada de q
    int q;// posicion mas alejada de p
    vector <Vertice> vec;
    double ** distancias;
    Nodo *primero;
    Nodo *segundo;


    double calcularDistancia(Vertice a, Vertice b);
    void cargarMatrizDistancias();
public:
    
    Nodo(vector <Vertice>  e);

   
    
    Nodo getNodo(int nro);
    Nodo* getRama(int nro);//retorna el apuntador nro del nodo
    void insertarNodo(int nro, Nodo *n);
    void eliminarNodo(int nro);

    Vertice getVecPosP(){return vec[p]; }
    Vertice getVecPosQ(){return vec[q]; }
    
    int getPrim(){ return p; }
    int getSeg(){ return q; }
    void setPrim(const int &prim){ p = prim; }
    void setSeg(const int &seg){ q = seg; }
    vector <Vertice> getVector(){ return vec; }
    void setVector(const vector <Vertice> e){ vec = e; }
    
};

#endif
